#ifndef __SUBSYSTEM_THROWABLE_BLOCK_BEHAVIOR_H__
#define __SUBSYSTEM_THROWABLE_BLOCK_BEHAVIOR_H__

#include "Subsystems/BlockBehaviors/SubsystemBlockBehavior.hpp"

using namespace PocketSurvival::Engine;

namespace PocketSurvival
{   
    class SubsystemProjectiles;
    
    // 可以投掷的方块的行为
    class SubsystemThrowableBlockBehavior : public SubsystemBlockBehavior
    {
    protected:
        SubsystemProjectiles *m_projectiles;

    public:
        SubsystemThrowableBlockBehavior();

        virtual bool onAim(const Ray3 &aim, ComponentMiner *componentMiner, AimState state) override;

        virtual const std::string& getName() const override;
        virtual void load(const nlohmann::json& json) override;
    };

    inline SubsystemThrowableBlockBehavior::SubsystemThrowableBlockBehavior() {}
}

#endif